Call of Juarez Tweak Guide

[Page 10] Neat Stuff & Conclusion



This section brings the guide to a conclusion, but not without providing several important tips and tweaks to further improve performance.


Click to enlarge

Max Frames to Render Ahead - In Reverse


Many of you may have used the 'Max Frames to Render Ahead' tip for games like Oblivion. This tip is detailed at the top of this page of my Oblivion Tweak Guide. This makes games like Oblivion more responsive and resolves input lag problems, but also lowers FPS slightly in return.


Perhaps most of you would have likely left that setting at a value of 0 or 1 and forgotten about it. However here's the part where you can gain a few extra FPS in Call of Juarez: by reversing this tweak. The reason is that CoJ is actually very responsive even at lower framerates. Using the 'Max Frames to Render Ahead' tweak will make no real difference to CoJ in terms of responsiveness, but it does make a difference to FPS. By setting this option back to its default value of 3, you can improve your framerate by at least a couple of FPS if not more by not artificially bottlenecking your system. The actual gain will vary, but any free increase in FPS is useful to have in a game as strenuous as Call of Juarez.



Experimenting with Other Weapons


If you want to try a range of weapons in the demo, you can add them to your inventory at the start of each chapter by editing the relevant .scr files in the game's main Data0.pak file archive. This file is found under your \Program Files\Ubisoft\Demo\Techland\Call of Juarez SP Demo\ directory, and can be opened using a program like Winzip.


Open Data0.pak, and find the files saloon01_PublicDemo_StartProc.scr which is for the Ray chapter, and Ranch_PublicDemo_StartProc.scr which is for the Billy chapter. To edit them, you can either extract them to a suitable directory and use a text editor just like a normal .scr file (See Advanced Tweaking section), or you can right-click on them while they are still in the Data0.pak file and select select 'View' or 'View with Notepad.exe' (in Winzip). Make sure to backup the contents of each before editing them.


Now at the bottom of the .scr file where it lists the various starting items (e.g. StartItem("WeaponWhip")), you can edit these to add any of the following items:


StartItem("WeaponWhip") - Whip

StartItem("WeaponRifleWinchester") - Winchester Rifle

StartItem("WeaponRifleRemingtonSawOff") - Sawn Off Shotgun

StartItem("WeaponRifleRemington") - Normal Shotgun

StartItem("WeaponPistolSchofield")- Schofield Six Shooter

StartItem("WeaponPistolLemant") - LeMat Pistol

StartItem("WeaponPistolFrontier") - Pistol

StartItem("WeaponPistolDerringer") - Derringer Pistol

StartItem("WeaponHatchet") - Hatchet

StartItem("WeaponDynamiteStick") - Dynamite

StartItem("WeaponBow") - Bow


You can also start with the relevant ammo:


StartItem("AmmoPistol")

StartItem("AmmoRifle")

StartItem("BowArrow")


Add all the items you want to the file in place of the existing ones, save the file and update the archive with it. If you extracted the files to another location, make sure to add them back to the Data0.pak archive using the same directory path the file originally used. You should now be equipped with these items when you start that particular chapter the next time you boot up the demo.



Fixing Ragdoll Physics


To fix an issue with the ragdoll physics on corpses in CoJ, check out this thread on the CoJ Forums. It provides detailed instructions on how to fix this minor - but annoying to some people - issue. Thanks to Beef for the fix.



Speeding Up Loading Times


We've already discussed ways of improving loading times in the Troubleshooting Tips section. One additional method some people are recommending to speed up loading times and perhaps boost performance is to unpack the zipped .pak files Call of Juarez has in its main directory. These .pak files contain all of the files CoJ uses to run the game, and each time you launch the game are unpacked and loaded up. If you want to try this method, extract the contents of each .pak file found under the \Program Files\Ubisoft\Demo\Techland\Call of Juarez SP Demo\ directory to that same directory. Then rename the original .pak files to something else (e.g. .pack) so the game does not recognize them.


Now, make sure to defragment your hard drive as these unpacked files may be fragmented. Then the next time you launch the game, it may load up more quickly. Note however that the longer loading times in Call of Juarez are still influenced by your shader cache and other factors such as your hard drive speed, so just by unpacking these files you won't magically get a performance boost or a dramatic decrease in loading times. However it is a tip some people recommend so I've included it here for completeness.



Call of Juarez SLI Profile


For SLI users, there is a simple trick to make the Call of Juarez demo perform significantly better. It turns out that Nvidia have already included a profile for Call of Juarez in the latest official 91.31 Forceware drivers. If you haven't upgraded to these yet, now would be a good time to do so. Once you have, go to your \Program Files\Ubisoft\Demo\Techland\Call of Juarez SP Demo (or MP Demo)\ directory and rename the CoJDemo.exe file (or CoJMPDemo) to CoJ.exe. This is the executable the profile is looking for. The profile itself is actually called 'The Call of Juarez' under the Nvidia Forceware Control Panel, and by renaming the executable you have now linked the profile to the demo, and the next time you run it, it should perform much better. Note that renaming the executable, while harmless, has no performance impact for Non-SLI users.



Skipping the Startup and Exit Screens


To date I haven't found an elegant way of skipping the introductory (or exit) movies and screens. The best method I have found so far involves going to your \Program Files\Ubisoft\Demo\Techland\Call of Juarez SP Demo\ directory and opening the Data1.pak file using a program like Winzip. You can delete the following files from that archive:


Logo02.jpg

Logo03.jpg

coj - deloading 1.jpg

coj - deloading 2.jpg


Make sure to leave Logo01.jpg in the archive otherwise the game will not load up properly. Now whenever you launch the demo you will have less screens to click through at the start, and none to wait for on your exit. Once I find the correct way of skipping the introductions using an appropriate command line parameter, I will update this guide with it.



Taking Screenshots & Measuring FPS


To take a screenshot in Call of Juarez, simply press the PRINT SCREEN key and a screenshot will be saved to your \Documents and Settings\[Username]\My Documents\call of juarez sp demo (or mp demo)\Out\ScreenShots\ directory - this directory is created the first time you take a screenshot this way. The screenshot will be saved in .tga format, which can be read by Photoshop or the free IRFanView viewer.


If you'd prefer, you can use the Fraps utility instead to take screenshots, as it can take them in other formats and save them to the directory of your choice. Fraps is also very useful because it allows you to measure your framerate in Call of Juarez. Given I have not yet worked out how to enable the FPS counter via the game's own console, Fraps is the main alternative for FPS measurement, and an accurate one at that.



The Game Engine Isn't Optimized!


Many people are saying that the Call of Juarez game engine "isn't optimized". This gives me a great sense of deja vu. From Far Cry to FEAR to Battlefield 2 to Oblivion - and now to Call of Juarez: each time a strenuous game comes out a range of people proclaim that the engine is "badly coded" and it needs to be "optimized". Several people go so far as to suggest that a patch will (or must!) come out to fix this terrible coding. Well unfortunately all indications are that, just like the other games listed above, Call of Juarez is no less optimized and no more likely to improve significantly in performance over the course of its life. I'm not saying Call of Juarez is the most superbly coded game ever presented, nor that it will never improve, but the simple fact of the matter is that it is a next-generation game, whether you believe it looks like it is or not. Let's quickly examine the reasons why I believe that.


For starters the game is based on the third iteration of the well-established Chrome Engine which came out in 2003. If you look at this article from back then you will see that even 3 years ago the engine was quite advanced and capable of spectacular expansive outdoor environments, cool effects and high polygon counts. The engine has had plenty of time to mature, so it is not a new or suboptimal engine. The version number on the demo screen for Call of Juarez shows version 0.9, indicating that this build of the game is not some early alpha or beta build. If we look at what Call of Juarez does, the reason why it is so strenuous starts to become apparent.


The game makes extensive use of shaders to create realistic lighting and surface effects. As we've seen in the Advanced Tweaking section there is a way that these shaders can be completely disabled, and when they are there is major FPS improvement (and a major change in the atmosphere and image quality). However in some areas there are still extremely large numbers of polygons being used to render characters and environments, combined with good quality textures even for more distant terrain, and let's not forget that each map has quite large continuous indoor and outdoor areas all loaded into memory and not suddenly popping into view every 3 feet. Nor can we forget the excellent artificial intelligence used in the game, the innovative use of fire (it actually spreads to various objects realistically), and a whole bunch of other little touches which make the game highly realistic, but also highly strenuous on both your CPU and GPU.


Which brings me to another major complaint - the loading times. We've discussed this in detail in the Troubleshooting Tips section, but to reiterate, this issue is directly the result of two factors: firstly the game has over 3,000 shader files it needs to create or modify each time you change a video setting. Once you've settled on a particular configuration, your loading times will improve as most of these files don't need to be re-created or rewritten. However they do still need to be read each time you load the game, so if you're using a slower hard drive and/or your drive isn't defragmented after the shaders are optimized, your load times will remain high because the drive has to seek out 3,000+ individual files at each load. It's not the size of the files, it's the sheer number of them which makes it a longer task. Secondly, and most importantly, the game loads up the bulk of its files at the start of the level. Typically the game can load up to 600MB or more into memory at the very start of a level. This is in contrast with Oblivion (and most games) which load up a bit at the start, and then load a lot of data continuously as you wander through a level. So in return for longer loading times, Call of Juarez has little if any stuttering while wandering around, whereas Oblivion has much more of it. I think most people would agree that less in-level stuttering is a good tradeoff for longer loading times at the start of a level?


In the end I see many indications that, contrary to popular belief, Call of Juarez is actually reasonably optimized and is pushing out some amazingly complex effects and gameplay-enhancing features in a very tight package. "The engine isn't optimized" is a common catchcry these days that seems to be spreading like wildfire, usually with little actual basis in fact or reason. Make sure you don't also jump on this bandwagon, at least not without considering the actual evidence at hand.



Conclusion


This brings the guide to a close for now, but of course given that Call of Juarez has piqued such interest across the web, both for presenting a rather different genre than most FPS games, and for having a demanding game engine, I expect that this guide will expand to contain much more about the game as time goes by. Check back regularly as I keep the guide updated with new information and details about the game, especially when the full version of the game is released.


If you know of any major tweaks which are missing from this guide, or if you have any constructive feedback, please Email Me. Your feedback is important in making sure that the guide contains all the information people need to tweak this great game. However bear in mind as always that I can't provide any tech support, nor can I provide personal tweaking or purchasing advice.


For now, as I have a habit of saying: until next time take care!